#include <stdio.h>
#include "queue.h"

	
int is_full(queue *q)
{
	return (q->count >= Q_SIZE) ? 1 : 0;
}
int is_empty(queue *q)
{
	return (q->count == 0) ? 1 : 0;
}

int queue_add(queue *q,TYPE data)
{
	if(is_full(q))
		return 0;
	q->data[q->tail]=data;
	if(q->tail == Q_SIZE-1)
	{
		q->tail=0;
	}
	else
	{
		q->tail++;
	}
	q->count++;
	return 1;
}
int queue_get(queue *q,TYPE *data)
{
	if(is_empty(q))
		return 0;
	*data=q->data[q->head];
	if(q->head == Q_SIZE-1)
	{
		q->head=0;
	}
	else
	{
		q->head++;
	}
	q->count--;
	return 1;
}
/*
int main(int argc,char **argv)
{
	queue q;
	memset(&q,0,sizeof(q));
	int i=0;
	while(queue_add(&q,i))
		i++;
	while(queue_get(&q,&i))
		printf("%d\n",i);
	int j,k;
	for(j=0;j<10;j++)
	{
		for(i=0;i<10;i++)
			queue_add(&q,i);
		for(i=0;i<10;i++)
		{
			queue_get(&q,&k);
			printf("%d\n",k);
		}
	}
}
*/
